import numpy as np
import matplotlib.pyplot as plt

def psi(x, eta):
    return 0.5 + (1/np.pi) * np.arctan(eta * (x - 0.5))

x = np.linspace(0, 1, 1000)
etas = [30, 40, 50]  # 修改后的eta值

plt.figure(figsize=(8, 6))
for eta in etas:
    y = psi(x, eta)
    if eta == 40:
        plt.plot(x, y, color='grey', label=f'η={eta}')
    else:
        plt.plot(x, y, linestyle='--', color='grey', label=f'η={eta}')

plt.axvline(x=0.5,           # 竖线位置
            color='green',   # 黑色
            linestyle='--',   # 实线
            linewidth=1)     # 线宽
# 添加坐标轴范围设置
plt.xlim(0, 1)  # 设置x轴范围为0-1
plt.ylim(0, 1)  # 设置y轴范围为0-1

# 核心修改：移除坐标轴
plt.xticks([])  # 移除x轴刻度
plt.yticks([])  # 移除y轴刻度

# 保存图像（必须先于plt.show()）
plt.savefig('sigmoid_curves.png', 
           dpi=300, 
           bbox_inches='tight', 
           pad_inches=0, 
           transparent=False)

plt.show()



import numpy as np
import matplotlib.pyplot as plt

# 定义逻辑函数
def smooth_cos(x, k=1.0):
    # k > 0，k 越大越陡，k 越小越平滑
    x_sym = np.abs(x - 0.5) * 2  # 映射到 [0,1]，对称
    # x_sym = x * 2
    return np.cos(np.pi * (x_sym ** k)) * 0.5

# 生成x轴数据
x = np.linspace(0, 1, 500)

# 设置不同eta值用于比较
eta_values = [1, 0.9, 1.1]

# 创建图形
plt.figure(figsize=(8, 6))

# 绘制不同eta值的曲线
for eta in eta_values:
    y = smooth_cos(x, eta)
    if eta == 1:
        plt.plot(x, y, color='grey', label=f'η={eta}')
    else:
        plt.plot(x, y, linestyle='--', color='grey', label=f'η={eta}')

# 添加标注和样式
"""
plt.title('Logistic Function ψcls(x) = 1 / (1 + e^{-η(x - 0.5)})', fontsize=12)
plt.xlabel('x')
plt.ylabel('ψcls(x)')
plt.grid(True, linestyle='--', alpha=0.7)
plt.axvline(0.5, color='gray', linestyle='--', alpha=0.5)  # 中心线
plt.legend()
"""
# 核心修改：移除坐标轴
plt.axvline(0.5, color='green', linestyle='--', alpha=0.5)  # 中心线
plt.xticks([])  # 移除x轴刻度
plt.yticks([])  # 移除y轴刻度
# 显示图形
plt.show()